// 消息类型常量
import type { IMessageStyle, MessageType } from '../constants'
import { SYMBOLS } from './symbols'

// 颜色常量
export const BASE_COLORS = {
  // 状态色（核心）
  ERROR: '#dc3545', // Bootstrap danger 红
  WARNING: '#ffc107', // Bootstrap warning 橙黄
  SUCCESS: '#28a745', // Bootstrap success 绿
  INFO: '#17a2b8', // Bootstrap info 蓝绿
  LOADING: '#007bff', // Bootstrap primary 蓝

  // 浅色状态背景
  LIGHT_ERROR: '#f8d7da',
  LIGHT_WARNING: '#fff3cd',
  LIGHT_SUCCESS: '#d4edda',
  LIGHT_INFO: '#d1ecf1',
  LIGHT_LOADING: '#cce5ff',

  // 深色状态版本
  DARK_ERROR: '#a71d2a',
  DARK_WARNING: '#d39e00',
  DARK_SUCCESS: '#1e7e34',
  DARK_INFO: '#117a8b',
  DARK_LOADING: '#0056b3',

  // 中性文字色（新增）
  TEXT_TITLE: '#404040', // 标题黑
  TEXT_PRIMARY: '#343a40', // 主要文字
  TEXT_SECONDARY: '#6c757d', // 次要文字
  TEXT_DISABLED: '#adb5bd', // 禁用状态

  // 背景色（新增）
  BG_BODY: '#ffffff', // 页面背景白
  BG_CARD: '#f8f9fa', // 卡片背景浅灰
  BG_OVERLAY: 'rgba(0, 0, 0, 0.5)', // 遮罩层

  // 中性边框色
  BORDER: '#dee2e6', // Bootstrap 边框灰
  BORDER_DARK: '#ced4da', // 深灰边框
}

export const BASE_LINK_COLOR = {
  PRIMARY: '#3498db',
  PRIMARY_LIGHT: '#5dade2',
  PRIMARY_DARK: '#2980b9',
}

// 消息样式配置
export const MESSAGE_STYLES: Record<MessageType, IMessageStyle> = {
  error: {
    className: 'message-error',
    color: BASE_COLORS.ERROR,
    bgColor: BASE_COLORS.LIGHT_ERROR,
    borderColor: BASE_COLORS.ERROR,
    icon: SYMBOLS.STATUS.ERROR,
  },
  warning: {
    className: 'message-warning',
    color: BASE_COLORS.WARNING,
    bgColor: BASE_COLORS.LIGHT_WARNING,
    borderColor: BASE_COLORS.WARNING,
    icon: SYMBOLS.STATUS.WARNING,
  },
  success: {
    className: 'message-success',
    color: BASE_COLORS.SUCCESS,
    bgColor: BASE_COLORS.LIGHT_SUCCESS,
    borderColor: BASE_COLORS.SUCCESS,
    icon: SYMBOLS.STATUS.SUCCESS,
  },
  info: {
    className: 'message-info',
    color: BASE_COLORS.INFO,
    bgColor: BASE_COLORS.LIGHT_INFO,
    borderColor: BASE_COLORS.INFO,
    icon: SYMBOLS.STATUS.INFO,
  },
  loading: {
    className: 'message-loading',
    color: BASE_COLORS.LOADING,
    bgColor: BASE_COLORS.LIGHT_LOADING,
    borderColor: BASE_COLORS.LOADING,
    icon: SYMBOLS.PROGRESS.SPINNER,
  },
}
